package com.eascs.ticket.configuration.service;

import java.util.List;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.eascs.ticket.common.entity.StatusConstant;
import com.eascs.ticket.common.service.BaseSevice;
import com.eascs.ticket.configuration.entity.UserAutoAssign;
import com.eascs.ticket.configuration.entity.UserAutoAssignUpdate;

@Service
public class UserAutoAssignService extends BaseSevice {

	public List<Object[]> getUserAutoAssignList() {
		String sql = "sql.UserAutoAssignService.getUserAutoAssignList";
		return this.proxyDao.findObjectsList(sql);
	}

	public UserAutoAssign getUserAutoAssignById(String id) {
		return this.proxyDao.getById(UserAutoAssign.class, id);
	}

	public List<UserAutoAssign> getUserAutoAssignFromUser(String userCode) {
		UserAutoAssign userAutoAssign = new UserAutoAssign();
		userAutoAssign.setAssignFrom(userCode);
		return this.proxyDao.findEntitysWithAny(userAutoAssign);
	}

	public List<UserAutoAssign> getValidUserAutoAssignFromUser(String userCode) {
		UserAutoAssign userAutoAssign = new UserAutoAssign();
		userAutoAssign.setAssignFrom(userCode);
		userAutoAssign.setStatus(StatusConstant.STATUS_OK);
		return this.proxyDao.findEntitysWithAny(userAutoAssign);
	}

	@Transactional(transactionManager = "ticketTransactionManager")
	public UserAutoAssign insertUserAutoAssign(UserAutoAssign userAutoAssign) {
		this.proxyDao.insert(userAutoAssign);
		return userAutoAssign;
	}

	@Transactional(transactionManager = "ticketTransactionManager")
	public UserAutoAssignUpdate updateUserAutoAssign(UserAutoAssignUpdate userAutoAssignUpdate) {
		this.proxyDao.updateById(userAutoAssignUpdate);
		return userAutoAssignUpdate;
	}
}
